由於這裡不能顯示html的表格,如果想有清楚表格知道前40名隔日沖分點
請看這裡
趕到11點,今天差點就PO不出這篇了
因為不是抓政府網站,為了避免太多人抓把網站用掛掉或變更難的反爬蟲,
抱歉不能提供分點的爬蟲程式碼
目前覺得對我最有幫助之一的就是分析分點
今天先來分析隔日沖
由於資料過於龐大,只取當天差額張數大於50張或賣出50張的
with MongoDatabase('broker_info') as connection:
data = connection.export_df({'$or':[{'差額張數':{'$gte':50}},{'差額張數':{'$lte':-50}}]})
data['date']=pd.to_datetime(data['date'])
data=data.sort_values('date').reset_index(drop=True)
目前資料爬到2018-06-26~2018-11-01,欄位如下
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>卷商代號</th>
<th>卷商</th>
<th>分點代號</th>
<th>分點</th>
<th>code</th>
<th>name</th>
<th>買進張數</th>
<th>賣出張數</th>
<th>差額張數</th>
</tr>
<tr>
<th>date</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>2018-06-26</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>0056</td>
<td>元大高股息</td>
<td>61.0</td>
<td>0.0</td>
<td>61.0</td>
</tr>
<tr>
<th>2018-06-28</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>0056</td>
<td>元大高股息</td>
<td>145.0</td>
<td>0.0</td>
<td>145.0</td>
</tr>
<tr>
<th>2018-06-29</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>0056</td>
<td>元大高股息</td>
<td>3.0</td>
<td>105.0</td>
<td>-102.0</td>
</tr>
<tr>
<th>2018-07-05</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>0056</td>
<td>元大高股息</td>
<td>161.0</td>
<td>0.0</td>
<td>161.0</td>
</tr>
<tr>
<th>2018-07-10</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>0056</td>
<td>元大高股息</td>
<td>1.0</td>
<td>85.0</td>
<td>-84.0</td>
</tr>
簡單判斷,第一天要是買超50張以上,第二天要賣超50張以上,且第2天要賣超過第一天量的7成,認定為隔日沖
2018-06-28 1020 合庫 1020 合庫 0056 元大高股息 145.0 0.0 145.0
2018-06-29 1020 合庫 1020 合庫 0056 元大高股息 3.0 105.0 -102.0
2018-07-11 1020 合庫 1020 合庫 0056 元大高股息 175.0 0.0 175.0
2018-07-12 1020 合庫 1020 合庫 0056 元大高股息 0.0 236.0 -236.0
這兩筆就是隔日沖
def next_day_sell(d):
if d[0]>0:
if d[1]<0 and abs(d[1])/d[0]>=0.7:
return 1
return 0
return 0
d['差額張數'].rolling(window=2).agg(next_day_sell)
date
2018-06-26 NaN
2018-06-28 0.0
2018-06-29 1.0
2018-07-05 0.0
2018-07-10 0.0
2018-07-11 0.0
2018-07-12 1.0
2018-07-27 0.0
2018-08-10 0.0
2018-10-05 0.0
2018-10-08 0.0
2018-10-11 0.0
2018-10-12 0.0
2018-10-26 0.0
Name: 差額張數, dtype: float64
如預期的找出2018-06-29、2018-07-12這兩天,這邊不能用window=2因為已經濾過資料,時間是不連續的所以需要明確說'2d'是兩天且有兩筆資料,還需要考慮六、日,這邊先不處理
d['差額張數'].rolling(window='2d',min_periods=2).agg(next_day_sell)
date
2018-06-26 NaN
2018-06-28 NaN
2018-06-29 1.0
2018-07-05 NaN
2018-07-10 NaN
2018-07-11 0.0
2018-07-12 1.0
2018-07-27 NaN
2018-08-10 NaN
2018-10-05 NaN
2018-10-08 NaN
2018-10-11 NaN
2018-10-12 0.0
2018-10-26 NaN
Name: 差額張數, dtype: float64
from collections import defaultdict
ndd = defaultdict(int)
for r in data.groupby(['分點代號','code'])[['date','差額張數']]:
d=r[1].set_index('date')
ndd[r[0][0]]+=d['差額張數'].rolling(window='2d',min_periods=2).agg(next_day_sell).sum()
nddf=pd.DataFrame(list(ndd.items()),columns=['分點代號','次數'])
取出前40名的隔日沖分點
find=nddf.sort_values('次數',ascending=False).head(40)
看看你手中的股票吧,被以下這些隔日沖買的股票要小心,第一名果然是很有名的美林
50張或許有點寬鬆,試試改成買賣的金額夠大,可能效果會更好
broker_info=data[['卷商代號', '卷商', '分點代號', '分點']].drop_duplicates()
pd.merge(broker_info,find,on='分點代號').sort_values('次數',ascending=False)
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>卷商代號</th>
<th>卷商</th>
<th>分點代號</th>
<th>分點</th>
<th>次數</th>
</tr>
</thead>
<tbody>
<tr>
<th>8</th>
<td>1440</td>
<td>美林</td>
<td>1440</td>
<td>美林</td>
<td>1578.0</td>
</tr>
<tr>
<th>39</th>
<td>9A00</td>
<td>永豐金</td>
<td>9A00</td>
<td>永豐金</td>
<td>1354.0</td>
</tr>
<tr>
<th>31</th>
<td>9800</td>
<td>元大</td>
<td>9800</td>
<td>元大</td>
<td>1303.0</td>
</tr>
<tr>
<th>6</th>
<td>8880</td>
<td>國泰</td>
<td>8880</td>
<td>國泰</td>
<td>1291.0</td>
</tr>
<tr>
<th>2</th>
<td>5850</td>
<td>統一</td>
<td>5850</td>
<td>統一</td>
<td>1287.0</td>
</tr>
<tr>
<th>16</th>
<td>8560</td>
<td>新光</td>
<td>8560</td>
<td>新光</td>
<td>1234.0</td>
</tr>
<tr>
<th>0</th>
<td>9200</td>
<td>凱基</td>
<td>9200</td>
<td>凱基</td>
<td>1113.0</td>
</tr>
<tr>
<th>38</th>
<td>1470</td>
<td>台灣摩根士丹利</td>
<td>1470</td>
<td>台灣摩根士丹利</td>
<td>1077.0</td>
</tr>
<tr>
<th>26</th>
<td>1530</td>
<td>港商德意志</td>
<td>1530</td>
<td>港商德意志</td>
<td>1033.0</td>
</tr>
<tr>
<th>14</th>
<td>1520</td>
<td>瑞士信貸</td>
<td>1520</td>
<td>瑞士信貸</td>
<td>1032.0</td>
</tr>
<tr>
<th>17</th>
<td>1650</td>
<td>新加坡商瑞銀</td>
<td>1650</td>
<td>新加坡商瑞銀</td>
<td>1026.0</td>
</tr>
<tr>
<th>5</th>
<td>9200</td>
<td>凱基</td>
<td>9268</td>
<td>凱基-台北</td>
<td>977.0</td>
</tr>
<tr>
<th>30</th>
<td>5920</td>
<td>元富</td>
<td>5920</td>
<td>元富</td>
<td>956.0</td>
</tr>
<tr>
<th>13</th>
<td>9100</td>
<td>群益金鼎</td>
<td>9100</td>
<td>群益金鼎</td>
<td>952.0</td>
</tr>
<tr>
<th>19</th>
<td>8440</td>
<td>摩根大通</td>
<td>8440</td>
<td>摩根大通</td>
<td>941.0</td>
</tr>
<tr>
<th>9</th>
<td>1480</td>
<td>美商高盛</td>
<td>1480</td>
<td>美商高盛</td>
<td>936.0</td>
</tr>
<tr>
<th>27</th>
<td>9300</td>
<td>華南永昌</td>
<td>9300</td>
<td>華南永昌</td>
<td>891.0</td>
</tr>
<tr>
<th>29</th>
<td>1160</td>
<td>日盛</td>
<td>1160</td>
<td>日盛</td>
<td>887.0</td>
</tr>
<tr>
<th>37</th>
<td>8150</td>
<td>台新</td>
<td>8150</td>
<td>台新</td>
<td>818.0</td>
</tr>
<tr>
<th>4</th>
<td>9600</td>
<td>富邦</td>
<td>9600</td>
<td>富邦</td>
<td>793.0</td>
</tr>
<tr>
<th>25</th>
<td>1360</td>
<td>港商麥格理</td>
<td>1360</td>
<td>港商麥格理</td>
<td>755.0</td>
</tr>
<tr>
<th>10</th>
<td>1590</td>
<td>花旗環球</td>
<td>1590</td>
<td>花旗環球</td>
<td>751.0</td>
</tr>
<tr>
<th>33</th>
<td>7000</td>
<td>兆豐</td>
<td>7000</td>
<td>兆豐</td>
<td>690.0</td>
</tr>
<tr>
<th>20</th>
<td>8850</td>
<td>鑫豐</td>
<td>8850</td>
<td>鑫豐</td>
<td>635.0</td>
</tr>
<tr>
<th>22</th>
<td>1560</td>
<td>港商野村</td>
<td>1560</td>
<td>港商野村</td>
<td>598.0</td>
</tr>
<tr>
<th>35</th>
<td>1260</td>
<td>宏遠</td>
<td>1260</td>
<td>宏遠</td>
<td>545.0</td>
</tr>
<tr>
<th>36</th>
<td>1020</td>
<td>合庫</td>
<td>1020</td>
<td>合庫</td>
<td>494.0</td>
</tr>
<tr>
<th>18</th>
<td>8560</td>
<td>新光</td>
<td>8561</td>
<td>新光-台中</td>
<td>493.0</td>
</tr>
<tr>
<th>3</th>
<td>5850</td>
<td>統一</td>
<td>585U</td>
<td>統一-南京</td>
<td>483.0</td>
</tr>
<tr>
<th>34</th>
<td>8840</td>
<td>玉山</td>
<td>8840</td>
<td>玉山</td>
<td>482.0</td>
</tr>
<tr>
<th>11</th>
<td>7790</td>
<td>國票</td>
<td>779c</td>
<td>國票-敦北法人</td>
<td>479.0</td>
</tr>
<tr>
<th>7</th>
<td>8960</td>
<td>香港上海匯豐</td>
<td>8960</td>
<td>香港上海匯豐</td>
<td>457.0</td>
</tr>
<tr>
<th>24</th>
<td>9300</td>
<td>華南永昌</td>
<td>9326</td>
<td>華南永昌-南京</td>
<td>451.0</td>
</tr>
<tr>
<th>12</th>
<td>8450</td>
<td>康和</td>
<td>8450</td>
<td>康和</td>
<td>442.0</td>
</tr>
<tr>
<th>15</th>
<td>9100</td>
<td>群益金鼎</td>
<td>918e</td>
<td>群益金鼎-大安</td>
<td>441.0</td>
</tr>
<tr>
<th>23</th>
<td>9600</td>
<td>富邦</td>
<td>9623</td>
<td>富邦-台北</td>
<td>427.0</td>
</tr>
<tr>
<th>1</th>
<td>5850</td>
<td>統一</td>
<td>585c</td>
<td>統一-仁愛</td>
<td>422.0</td>
</tr>
<tr>
<th>32</th>
<td>6160</td>
<td>中國信託</td>
<td>6160</td>
<td>中國信託</td>
<td>419.0</td>
</tr>
<tr>
<th>28</th>
<td>5920</td>
<td>元富</td>
<td>592E</td>
<td>元富-城中</td>
<td>408.0</td>
</tr>
<tr>
<th>21</th>
<td>9600</td>
<td>富邦</td>
<td>9658</td>
<td>富邦-建國</td>
<td>404.0</td>
</tr>
</tbody>
</table>